package Array_Object;

import java.util.Random;

/**
 * ClassName:Text
 * Package:Array_Object
 * Description:
 *
 * @Author:ZhangXin
 * @Create2023/1/26-23:41
 * @Version:v1.0
 */
public class Text002 {
    /*
     * 需求
     * 把一个一维数组中的数据：0~15 打乱顺序
     * 然后在按照4个一组的方式添加到二维数组当中*/
    public static void main(String[] args) {
        //1.定义一个以为数组
        int[] tempArr = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
        //2.打乱数组中的数据的顺序
        //遍历数组,得到每一个元素,拿着每一个元素跟随机索引上的数据进行交换
        Random r = new Random();
        for (int i = 0; i < tempArr.length; i++) {
            //获取随机索引
            int index = r.nextInt(tempArr.length);
            //拿着遍历到的每一个数据,跟随机索引上的数据进行交换
            int temp = tempArr[i];
            tempArr[i] = tempArr[index];
            tempArr[index] = temp;
        }
        for (int i = 0; i < tempArr.length; i++) {
            System.out.print(tempArr[i] + " ");
        }
        System.out.println();
        System.out.println("===============================");

        //创建二维数组
        int[][] date = new int[4][4];
        //给二维数组添加数据
        //解法二：给里面的每一个数据赋值
        int index = 0;
        for (int i = 0; i < date.length; i++) {
            for (int j = 0; j < date.length; j++) {
                date[i][j]=tempArr[index];
                index++;
            }
            System.out.println();
        }
        //遍历二维数组
        for (int i = 0; i < date.length; i++) {
            for (int j = 0; j < date.length; j++) {
                System.out.print(date[i][j]+" ");
            }
            System.out.println();
        }
    }

}
